This invention concerns a device for decoding a data stream representing moving pictures encoded according to the MPEG standard.
MPEG standards define the conditions under which moving pictures are encoded and decoded.
Digitized picture transmission and storage techniques can significantly improve the quality of the pictures finally obtained, compared with analog transmission. These techniques also have a wider range of applications.
However, direct transmission and storage of moving digitized pictures requires an extremely high information throughput, which in practice makes it necessary to compress and encode these pictures.
Digitized pictures are thus encoded before transmission in order to reduce the quantity of information representing them, and are then decoded after transmission.
Obviously, encoding and decoding techniques are essential for the quality of the final pictures, and it became necessary to standardize them so that the various equipment using these techniques would be compatible.
Thus a group of Experts (the Moving Picture Expert Group--MPEG) developed ISO standard 11172 and ISO IEC standard 13818.
These two standards are often referred to as MPEG1 and MPEG2, and define encoding and decoding conditions for moving pictures, possibly associated with a sound signal, that can be used equally well for the storage and reproduction of pictures, and for their transmission.
Therefore this MPEG standard may be used for the storage of pictures on compact disks, interactive compact disks, magnetic tapes, for the transmission of pictures through LANs or telephone lines, and the transmission of television pictures by radio communications
The standard completely defining this technique in detail can be obtained from standardization organizations, and reference should be made to it for a detailed description.
Data compression used according to the MPEG standard may be processing several ways.
Consecutive pictures are firstly collected, in order to form a group of pictures forming a sequence. Therefore a sequence is subdivided into groups of pictures.
Each picture is divided into strips, each strip itself being broken down into macroblocks that form the basic element used to apply a movement compensation and if necessary to change the quantification scale.
Macroblocks are formed from a 16.times.16 matrix of picture elements (pixels).
Each macroblock is usually divided into six blocks, the first four blocks containing brightness information, and the other two blocks each containing color information.
Each of these six blocks is defined as being a matrix of 8.times.8 picture elements (pixels).
Different types of pictures are defined inside each sequence in order to reduce the quantity of information to be stored or transmitted, making use of similarities between information contained in the different pictures in the same sequence.
I (Intraframe) pictures are encoded without reference to another picture.
P (Predicted) pictures are deduced from the previously rebuilt I or P picture.
B (Bi-directional frames) pictures are deduced from two rebuilt I and P or P and P pictures, usually the one immediately before and the one immediately after.
It should be emphasized here that in general, the order in which pictures in a sequence are transmitted is not usually the same as the order in which they are presented during acquisition or reproduction. They are in the order of decoding.
A Discrete Cosine Transformation (DCT) is applied to these blocks.
This DCT transformation transforms spatial blocks defined as mentioned above in a 8.times.8 pixel matrix, into temporal blocks formed from another 8.times.8 matrix of space frequencies.
It has been shown that the continuous background coefficient (DC) in the 8.times.8 matrix of the temporal block, placed at the top left of the matrix, is much more important for the visual impression obtained than the other components corresponding to different frequencies.
More precisely, the eye is less sensitive for higher frequencies.
This is why the frequency levels are quantified, particularly at higher frequencies. This quantification is done by an algorithm which is not imposed by the standard, and which includes a quantification and Variable Length Coding (VLC) operation.
The matrix in the frequency domain obtained by the DCT transformation is then processed by a so-called "quantification matrix" which is used to divide each of the terms in the time domain matrix by a value that depends on its position, taking into account the fact that the weight of the various frequencies represented by these coefficients is variable.
After each value has been rounded to the nearest integer value, the result of this operation gives a large number of coefficients equal to zero.
It should be emphasized that the quantification value of the background coefficient (DC) is constant for intra macroblocks, for example equal to 8. Non-zero frequency coefficients are then encoded by means of zigzag scanning with reference to a Huffman's table, assigning a variable length coded value to each coefficient in the matrix, and reducing the volume of information.
Preferably, coefficients representing the continuous background are transmitted after quantification and furthermore the quantification matrix is optimized so that the volume of information is less than a predetermined level matching storage or transmission capabilities, without excessively deteriorating the quality of the transmitted information.
Type I pictures are encoded without the use of a movement vector.
However, type P and B pictures use movement vectors, at least for some of the macroblocks contained in them, in order to increase the coding efficiency and indicating the part of the reference picture(s) from which a specific macroblock in the picture considered should be determined.
The search for the movement vector is optimized during encoding, and is itself encoded using the DPCM technique which makes the best use of the correlation between movement vectors from different macroblocks in the same picture. Finally, a variable length coding (VLC) is applied to them.
All information concerning an encoded sequence makes up the bitstream that will be either recorded or transmitted.
This type of bitstream starts with a sequence header containing a given amount of information, and parameters whose values remain constant for the entire sequence.
Similarly, since the sequence is broken down into groups of pictures, each of these groups is preceded by a group header, and data representing each picture are preceded by a picture header.
Therefore a reception system complying with the MPEG standard receives a stream of data or digital information in the form of variable length codes representing pictures. This data stream also includes code length tables, decoding tables for variable length codes that will be used by the reception system to transform the data stream into the sequence of moving pictures that was initially encoded.
As we have already seen, the data stream also includes movement vectors.
In previously known devices, a processing unit receives a data stream from a data offset stage and itself extracts the length of each code, and decodes it.
Due to the information stream to be processed to produce pictures with an adequate spatial definition and a sufficiently large number to give an impression of continuous movement, the various decoding operations must be carried out at a very high speed.
The inventors demonstrated that code length extraction and decoding operations carried out by the processing unit, as described above, are an important step that could limit the processing speed of the decoding assembly.
The purpose of this invention is to provide an alternative device in order to increase the speed at which these operations are carried out, without it being necessary to use large and therefore expensive means.
Consequently, the invention concerns a device for decoding a data stream representing moving pictures encoded according to the MPEG standard in which a logical unit receives data containing the maximum number of bits in a variable length code from an offset stage, returns the length of each decoded code to the offset stage, and produces a decoded value of each code.
According to the invention, this decoding device includes a controller controlling at least two separate processing units, in which a first processing unit extracts the code length and addresses it to the offset stage, and a second processing unit decodes the codes, the processing units being controlled by the logical unit.
According to the different preferred embodiments, this decoding device has the following characteristics which may be combined:
the data stream containing a code length table, the controller extracts parameters from the data stream defining the code length table and addresses this table to the first processing unit; PA1 the data flow containing a variable length codes decoding table, the controller extracts parameters defining the variable length codes decoding table from the data stream, and addresses this table to the second processing unit; PA1 the data stream containing movement vectors, there is a third processing unit to decode movement vectors; PA1 each processing unit is controlled by the controller in a master/slave relation, the controller addressing a start command to control processing in a processing unit, and the processing unit returning an end signal to the controller when the processing is terminated; PA1 each processing unit receives data from the offset stage at the same time as the controller receives the same data; PA1 the controller controls transmission of signals after decoding.